iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 14
0
自我挑戰組

Go to 放棄系列 第 14

go note 9 => init

  • 分享至 

  • xImage
  •  

一個package下,可以多個init

package main

import "fmt"

func init() {
	fmt.Println("init囉")
}
func main() {
	fmt.Println("main function")
}

// init囉
// main function

package main

import "fmt"

func init() {
	fmt.Println("init囉 part1")
}
func init() {
	fmt.Println("init囉 part2")
}
func main() {
	fmt.Println("main function")
}

// init囉 part1
// init囉 part2
// main function

再來是測試引入其他package的init

mkdir foo
cd foo
touch foo.go
package foo

import "fmt"

func init() {
	fmt.Println("init foo")
}
mkdir bar
cd bar
touch bar.go
package bar

import "fmt"

func init() {
	fmt.Println("init bar")
}

再來我們主程式

package main

import (
	_ "./bar" // 因為main function沒引用bar的東西,只想用它的init,就用under score
	_ "./foo" // 因為main function沒引用foo的東西,只想用它的init,就用under score
	"fmt"
)

func init() {
	fmt.Println("init囉 part1")
}
func init() {
	fmt.Println("init囉 part2")
}
func main() {
	fmt.Println("main function")
}

https://ithelp.ithome.com.tw/upload/images/20181029/20112477iZe2YRdeFb.png


上一篇
go note8 => switch
下一篇
go note =>test
系列文
Go to 放棄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言